import org.apache.log4j.Logger;


public class CataoLog {

	private int id;
	private Cliente cliente;
	private Double limiteTotal;
	private List<Fatura> faturas;
	private Logger logger = Logger.getRootLogger();
	
	public Cartao(Cliente cliente) {
		this.cliente = cliente;
		this.calculaLimite();
	}
	
	public Fatura buscarFaturaAberta() {
		for (Fatura fatura : this.faturas) {
			if (fatura.isFaturaAberta()) {
				return fatura;
			}
		}
		return null;
	}

	public Double somaValoresFaturas() {
		Double soma = 0.00;
		for (Fatura fatura : this.faturas) {
			soma = fatura.getTotal();
		}
		return soma;
	}
	
	private boolean adicionarCompraNaFatura(Fatura faturaAberta, Compra compra) {
		faturaAberta.adicionarCompra(compra);

		if (compra.getQuantidadeParc() > 1) {
			int qtdParcelas = compra.getQuantidadeParc();
			Double totalFatura = faturaAberta.getTotal();
			totalFatura += compra.getValorParcela();
			faturaAberta.setTotal(totalFatura);
			faturaAberta.setMinimo(totalFatura * 0.10);
			if (this.faturas.size() < qtdParcelas) {
				this.gerarFaturas(compra, qtdParcelas, totalFatura);
				//logger.info("iniciando");
			} else {
				int indexFaturaAberta = this.faturas.indexOf(faturaAberta);
				this.preencherValoresNasFaturasExistentes(compra, qtdParcelas,
						totalFatura, indexFaturaAberta);
				
			}
		} else {
			Double totalFatura = faturaAberta.getTotal();
			totalFatura += compra.getValorTotal();
			faturaAberta.setTotal(totalFatura);
			faturaAberta.setMinimo(totalFatura * 0.10);
		}
		return true;
	}

}
